package com.banyuan.FunctionDemo;

//方法的递归，方法自己调用自己；
//递归可以看作是一个循环；
//递归做的的事，循环都可以做，反过来不成立；
//递归相比与虚幻
public class FunctionDiGui {
    //用递归解决阶乘的问题
    public int jieCheng(int i) {
        if (i == 1) {
            return 1;
        }
        return i * jieCheng(i - 1);
    }

    //斐波那契数列 1，1，2，3，5...
    public int demo(int i) {
        if (i == 1) {
            return 1;
        }
        if (i == 2) {
            return 1;
        }

        return demo(i - 1) + demo(i - 2);
        /*先进入前面的demo（i - 1）执行完了之后，才会进入后面的demo（i-2）；
        *   用二叉树表示的话，是最左边的树先执行，依次向右执行   。
         */
    }

    public static void main(String[] args) {
        FunctionDiGui f = new FunctionDiGui();
        int a = f.jieCheng(3);
        int b = f.demo(5);
        System.out.println(a + "," + b + ";");
    }


}
